﻿var gulp = require('gulp'),
    cssmin = require('gulp-cssmin'),    // 压缩 css
    imagemin = require('gulp-imagemin'),// 压缩 img
    uglify = require('gulp-uglify'),    // 压缩 js
    gulpif = require('gulp-if'),        // 条件判断
    rev = require('gulp-rev'),          // 添加版本号
    revCollevtor = require('gulp-rev-collector'),   // html 版本文件替换
    rename = require('gulp-rename'),        // 重命名
    htmlmin = require('gulp-htmlmin');  // 压缩 html

// css 压缩
gulp.task('cssmin', function(){
    return gulp.src('./css/*.css')
        .pipe(cssmin())
        .pipe(rev())
        .pipe(gulp.dest('./publish/css'))
        .pipe(rev.manifest())
        .pipe(rename('css-manifest.json'))
        .pipe(gulp.dest('./publish/rev'))
    })

// image
gulp.task('imagemin', function(){
    return gulp.src('./img/**/*',{base:'./img'})
        // .pipe(imagemin())
        .pipe(gulp.dest('./publish/img'))
    });
//  return gulp.src('./img/banner/*')
//      .pipe(imagemin())
//      .pipe(gulp.dest('./publish/img/banner'))
//  });

// js
gulp.task('jsmin', function(){
    return gulp.src('./js/*.js')
        .pipe(uglify())//压缩文件
        .pipe(rev())//添加版本号
        .pipe(gulp.dest('./publish/js'))//储存文件
        .pipe(rev.manifest())//记录版本号版本信息
        .pipe(rename('js-manifest.json'))//更改记录版本号版本信息的文考名字
        .pipe(gulp.dest('./publish/rev'))//路径
    })

// 其他
gulp.task('other', function(){
    gulp.src('./lib/**/*')
        .pipe(gulp.dest('./publish/lib'))
    })

// html
gulp.task('htmlmin' ,function(){
    // var options = {
    //     collapseWhitespace:true,
    //     collapseBooleanAttributes:true,
    //     removeComments:true,
    //     removeEmptyAttributes:true,
    //     removeScriptTypeAttributes:true,
    //     removeStyleLinkTypeAttributes:true,
    //     minifyJS:true,
    //     minifyCSS:true
    // };
    // return gulp.src(['./publish/*.html','./publish/common/*.html'],{base:'./publish'})
    //     .pipe(htmlmin(options))
    //     .pipe(gulp.dest('./publish'));
    return gulp.src('./*.html')
    // .pipe(htmlmin({options}))
        // .pipe(rev())
        .pipe(gulp.dest('./publish'))
        // .pipe(rev.manifest())
        // .pipe(rename('html-manifest.json'))
        // .pipe(gulp.dest('./publish/rev'))
    })
gulp.task('rev',['cssmin','jsmin','imagemin','htmlmin'], function(){
    return gulp.src(['./publish/rev/*.json','./publish/*.html'])
        .pipe(revCollevtor())
        .pipe(gulp.dest('./publish'))
    })

gulp.task('default',['other', 'rev'])
